home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (PO)
/
Bits and Bytes Volume 11, No. 05 (1989-11)(Apple Computing Enjoyment Society)(Side B).zip
/
Bits and Bytes Volume 11, No. 05 (1989-11)(Apple Computing Enjoyment Society)(Side B).po
/
PROGRAMS
/
BILL.ORGANIZER.bas
next >
Wrap
BASIC Source File
|
1996-12-24
|
15KB
|
392 lines
900 ONERR GOTO 8000
1000 GOSUB 10000
1010 PRINT : PRINT D$;"PR#3"
1020 PRINT W4$;
1025 GOSUB 16000
1030 GOSUB 11000
1033 EN = 0
1036 VTAB 3: HTAB 3: PRINT "RECORD ";RECRD; SPC( 5)
1040 FOR X1 = 1 TO LF%
1050 FIELD% = X1: GOSUB 23500
1060 NEXT X1
1063 GOSUB 18000
1065 IF EN < >5 THEN GOSUB 19000: GOTO 1110
1070 FOR X1 = 1 TO 5
1080 FIELD% = X1
1090 GOSUB 23000: GOSUB 12000: GOSUB 23500
1100 NEXT X1
1110 FIELD% = 5: GOSUB 23000
1120 GOSUB 22000
1130 IF FIELD% = 5 THEN GOSUB 17000: GOSUB 13600:FR% = 3:LR% = 8: GOSUB 30100: GOSUB 23500: GOTO 1033
1135 IF FIELD% = 6 THEN GOTO 24029
1136 IF FIELD% = 7 THEN 1160
1140 IF FIELD% <LF% THEN GOSUB 12000: GOTO 1120
1150 REM
1151 REM ***QUIT***
1152 REM
1160 T% = 14:L% = 4:B% = 17:R% = 37: GOSUB 30200
1170 VTAB 15: HTAB 4: PRINT BEEP$;" Are you sure you want to QUIT? ";
1180 VTAB 16: HTAB 8:C$ = "Y": GOSUB 21000
1190 IF NTRY$ = "NO" THEN FR% = 14:LR% = 17: GOSUB 30100: GOSUB 23000: GOTO 1120
1200 GOSUB 17000
1210 PRINT D$;"CLOSE"
1220 HOME : END
7989 REM
7990 REM ***ERROR HANDLER***
7991 REM
8000 EN = PEEK(222)
8010 EL = PEEK(219) *256 + PEEK(218)
8020 IF EN = 2 THEN EN = 5
8030 IF EN = 5 THEN RESUME
8035 IF EN = 254 THEN RESUME
8040 PRINT BEEP$;BEEP$;
8050 FR% = 10:LR% = 14: GOSUB 30100
8060 T% = 10:L% = 4:B% = 14:R% = 37: GOSUB 30200
8070 VTAB 11
8080 ON EN GOTO 8100,8100,8500,8200,8100,8400,8400,8500,8600,8700
8100 HTAB 5: PRINT "Unexpected error (code ";EN;")"
8105 HTAB 5: PRINT "On line number ";EL
8120 HTAB 5: PRINT "Press RETURN to quit. ";
8130 GOSUB 30000
8140 IF C$ < > CHR$(13) THEN 8130
8150 GOTO 1210
8200 HTAB 5: PRINT "Disk is write-protected."
8210 HTAB 5: PRINT "Remove tab or use another disk."
8220 GOTO 8120
8400 HTAB 5: PRINT "Volume not found."
8410 HTAB 5: PRINT "Check prefix and drive."
8420 GOTO 8120
8500 HTAB 5: PRINT "Disk or drive error."
8510 HTAB 5: PRINT "Check disk, drive, and prefix."
8520 GOTO 8120
8600 HTAB 5: PRINT "Disk full."
8610 HTAB 5: PRINT "Last few records may be missing."
8620 GOTO 8120
8700 HTAB : PRINT "File ";FILE$;" Locked."
8710 PRINT : GOTO 8120
9989 REM
9990 REM ***INITIALIZE VARIBLES***
9991 REM
10000 MT$ = CHR$(15) + CHR$(27)
10010 RT$ = CHR$(24) + CHR$(14)
10020 D$ = CHR$(4)
10030 W4$ = CHR$(17)
10040 BEEP$ = CHR$(7)
10050 FOR X1 = 1 TO 40
10060 EF$ = EF$ +"I"
10070 TL$ = TL$ +"L"
10080 BL$ = BL$ +"_"
10090 TBAR$ = TBAR$ +"/"
10100 NEXT X1
10110 LF% = 10
10120 DIM FR%(2,LF%),FC%(2,LF%),FD$(2,LF%)
10130 FOR X1 = 1 TO LF%
10140 READ FR%(1,X1),FC%(1,X1),FD$(1,X1)
10150 READ FR%(2,X1),FC%(2,X1),FD$(2,X1)
10160 NEXT X1
10170 FILE$ = "BILLS"
10180 RECRD = 1
10190 DIM DD(12)
10200 FOR X1 = 1 TO 12: READ DD(X1): NEXT
10210 RETURN
10489 REM
10490 REM ***FIELD DESCRIPTIONS AND LOCATIONS***
10491 REM
10500 DATA 4,3,"1. <TITLE OF FIRM:>"
10510 DATA 4,3,"1. Title of firm: "
10520 DATA 5,3,"2. <AMOUNT DUE:> "
10530 DATA 5,3,"2. Amount due: "
10540 DATA 6,3,"3. <DATE DUE:> "
10550 DATA 6,3,"3. Date due: "
10560 DATA 7,3,"4. <PAY PERIOD?:>"
10570 DATA 7,3,"4. Pay period?: "
10600 DATA 11,3,"5. <ANOTHER RECORD?>"
10610 DATA 11,3,"5. Another record? "
10620 DATA 12,3,"6. <LIST>"
10630 DATA 12,3,"6. List "
10640 DATA 13,3,"7. <QUIT>"
10650 DATA 13,3,"7. Quit "
10660 DATA 7,25,"1ST CHECK"
10670 DATA 7,25,"1st check"
10689 DATA 8,25,"2ND CHECK"
10690 DATA 8,25,"2nd check"
10700 DATA 9,25,"HOLD"
10710 DATA 9,25,"hold"
10720 DATA 31,29,31,30,31,30,31,31,30,31,30,31
10989 REM
10990 REM ***DISPLAY ENTRY WINDOW***
10991 REM
11000 HOME
11010 T% = 2:L% = 2:B% = 22:R% = 39: GOSUB 30200
11020 VTAB 1: HTAB 1:L% = 38:TITLE$ = "Bill Organizer": GOSUB 30300
11030 RETURN
11989 REM
11990 REM ***ENTER FIELD***
11991 REM
12000 VTAB 20: HTAB 3: PRINT "Enter the selected field."
12010 HTAB 3: PRINT "Then press RETURN to confirm entry.";
12020 ON FIELD% GOSUB 13100,13200,13300,13400
12030 FR% = 19:LR% = 21: GOSUB 30100
12040 CHANGED = 1
12050 RETURN
13089 REM
13090 REM ***ENTER NAME OF FIRM***
13100 ML% = 11: VTAB 4: HTAB 23: GOSUB 20000
13110 FRM$ = NTRY$: RETURN
13189 REM
13190 REM ***ENTER AMOUNT DUE***
13200 ML% = 7: VTAB 5: HTAB 23: GOSUB 20000
13210 AMT$ = NTRY$
13220 GOTO 32000
13289 REM
13290 REM ***ENTER DATE DUE***
13300 ML% = 6: VTAB 6: HTAB 23
13301 HT% = PEEK(36) +1:NTRY$ = "":P1$ = "I":P2$ = "II"
13302 CL% = LEN(NTRY$): HTAB HT%
13303 IF CL% = 0 THEN PRINT NTRY$;MT$;P2$;RT$;"/";MT$;P2$;RT$;"/";MT$;P2$;RT$;: HTAB HT%: GOSUB 30000: GOTO 13310
13304 IF CL% = 1 THEN PRINT NTRY$;MT$;P1$;RT$;"/";MT$;P2$;RT$;"/";MT$;P2$;RT$;: HTAB HT% +1: GOSUB 30000: GOTO 13310
13305 IF CL% = 2 THEN PRINT NTRY$;"/";MT$;P2$;RT$;"/";MT$;P2$;RT$;: HTAB HT% +3: GOSUB 30000: GOTO 13310
13306 IF CL% = 3 THEN PRINT LEFT$(NTRY$,2);RT$;"/"; RIGHT$(NTRY$,1);MT$;P1$;RT$;"/";MT$;P2$;RT$;: HTAB HT% +4: GOSUB 30000: GOTO 13310
13307 IF CL% = 4 THEN PRINT LEFT$(NTRY$,2);RT$;"/"; RIGHT$(NTRY$,2);RT$;"/";MT$;P2$;RT$;: HTAB HT% +6: GOSUB 30000: GOTO 13310
13308 IF CL% = 5 THEN PRINT LEFT$(NTRY$,2);RT$;"/"; MID$ (NTRY$,3,2);RT$;"/"; RIGHT$(NTRY$,1);MT$;P1$;RT$;: HTAB HT% +7: GOSUB 30000: GOTO 13310
13309 IF CL% = 6 THEN PRINT LEFT$(NTRY$,2);RT$;"/"; MID$ (NTRY$,3,2);RT$;"/"; RIGHT$(NTRY$,2);: HTAB HT% +8: GOSUB 30000: GOTO 13310
13310 IF C$ = CHR$(8) AND CL% < = 1 THEN NTRY$ = "": GOTO 13302
13311 IF C$ = CHR$(8) THEN NTRY$ = LEFT$(NTRY$,CL% -1): GOTO 13302
13312 IF C$ = CHR$(127) THEN NTRY$ = "": GOTO 13302
13313 IF C$ = CHR$(13) THEN PRINT SPC( ML% -CL%);: GOTO 13319
13314 IF C$ > = " " AND CL% <ML% THEN NTRY$ = NTRY$ +C$
13315 GOTO 13302
13319 DTE$ = NTRY$: IF NTRY$ = "" THEN HTAB HT%: PRINT " ": RETURN
13320 MM = VAL( LEFT$(DTE$,2))
13330 IF MM <1 OR MM >12 THEN 13300
13340 DD = VAL( MID$ (DTE$,3,2))
13350 IF DD <1 OR DD >DD(MM) THEN 13300
13360 YY = VAL( RIGHT$(DTE$,2))
13370 IF YY <0 OR YY >99 THEN 13300
13380 MM$ = STR$(MM): IF LEN(MM$) = 1 THEN MM$ = "0" +MM$
13381 DD$ = STR$(DD): IF LEN(DD$) = 1 THEN DD$ = "0" +DD$
13390 RETURN
13395 REM
13396 REM ***ENTER 1ST/2ND CHECK***
13400 VTAB 19: HTAB 3: PRINT "Press ";MT$;"J";RT$;" or ";MT$;"K";RT$;" to select a type."
13401 VTAB 20: HTAB 3: PRINT "Then press RETURN to confirm entry";
13402 VTAB 21: HTAB 3: PRINT SPC( 35)
13403 FIELD% = 8: GOSUB 23000
13405 GOSUB 30000
13410 IF C$ = CHR$(10) THEN GOSUB 23500:FIELD% = FIELD% +1
13411 IF FIELD% >10 THEN FIELD% = 8
13412 GOSUB 23000
13420 IF C$ = CHR$(11) THEN GOSUB 23500:FIELD% = FIELD% -1
13421 IF FIELD% <8 THEN FIELD% = 10
13422 GOSUB 23000
13450 IF C$ < > CHR$(13) THEN 13405
13459 SE$ = STR$(FIELD% -7)
13460 IF SE$ = "3" THEN SE$ = "H"
13461 GOSUB 23500
13462 FIELD% = 4: GOSUB 23500
13465 FIELD% = 5: GOSUB 23000
13466 VTAB 7: HTAB 23: PRINT SE$
13470 RETURN
13589 REM
13590 REM ***GET RECORD NUMBER***
13600 T% = 12:L% = 4:B% = 16:R% = 37: GOSUB 30200
13605 VTAB 13: HTAB 4: PRINT " WHAT RECORD NUMBER? ";
13606 VTAB 14: HTAB 5: PRINT "ENTER <S> FOR SEARCH."
13615 ML% = 3: VTAB 13: HTAB 25: GOSUB 20000
13616 IF NTRY$ = "S" OR NTRY$ = "" THEN GOSUB 40000
13620 RECRD = VAL(NTRY$)
13625 IF RECRD <0 THEN PRINT BEEP$;: GOTO 13605
13630 FR% = 12:LR% = 16: GOSUB 30100
13640 RETURN
15989 REM
15990 REM ***DISPLAY WELCOME AND SET UP DISK***
16000 HOME
16010 VTAB 4: HTAB 5: PRINT MT$; LEFT$(TL$,31);RT$
16020 HTAB 6: PRINT "WELCOME TO BILL ORGANIZER"
16030 VTAB 10: HTAB 16: PRINT MT$;"SSS@SSU";RT$
16040 VTAB 16: HTAB 12: PRINT "ARCHER PROGRAMS"
16050 HTAB 5: PRINT LEFT$(BL$,31)
16060 PRINT D$;"OPEN";FILE$;",L45"
16070 FOR DE = 1 TO 500: NEXT DE
16080 RETURN
16989 REM
16990 REM ***WRITE RECORD***
16991 REM
17000 IF NOT CHANGED THEN RETURN
17010 VTAB 21: HTAB 3: PRINT "Saving to disk....";
17020 PRINT : PRINT D$;"WRITE";FILE$;",R";RECRD
17030 PRINT FRM$
17040 PRINT AMT$
17050 PRINT DTE$
17060 PRINT SE$
17080 PRINT D$
17090 FR% = 21:LR% = 21: GOSUB 30100
17100 RETURN
17989 REM
17990 REM ***READ RECORD***
17991 REM
18000 VTAB 21: HTAB 3: PRINT "Read record ";RECRD;" from disk....";
18010 PRINT : IF EN < >5 THEN PRINT D$;"READ";FILE$;",R";RECRD
18020 VTAB 23: HTAB 39
18030 IF EN < >5 THEN INPUT "";FRM$,AMT$,DTE$,SE$
18040 PRINT D$
18050 IF FRM$ = "" THEN EN = 5
18060 FR% = 21:LR% = 21: GOSUB 30100
18070 IF EN = 5 THEN VTAB 19: HTAB 3: PRINT "New Record."
18080 CHANGED = 0
18090 RETURN
18989 REM
18990 REM ***DISPLAY RECORD***
18991 REM
19000 VTAB 4: HTAB 23: PRINT FRM$
19010 VTAB 5: HTAB 23: PRINT AMT$
19015 IF DTE$ = "" THEN 19030
19020 VTAB 6: HTAB 23: PRINT LEFT$(DTE$,2);"/"; MID$ (DTE$,3,2);"/"; RIGHT$(DTE$,2)
19030 VTAB 7: HTAB 23: PRINT SE$
19050 RETURN
19989 REM
19990 REM ***GET ENTRY***
19991 REM
20000 HT% = PEEK(36) +1
20010 NTRY$ = ""
20020 CL% = LEN(NTRY$)
20030 HTAB HT%: PRINT NTRY$;
20040 IF ML% >CL% THEN PRINT MT$; LEFT$(EF$,ML% -CL%);RT$;
20050 HTAB HT% +CL%: GOSUB 30000
20060 IF C$ = CHR$(8) AND CL% < = 1 THEN 20010
20070 IF C$ = CHR$(8) THEN NTRY$ = LEFT$(NTRY$,CL% -1): GOTO 20020
20080 IF C$ = CHR$(127) THEN 20010
20090 IF C$ = CHR$(13) THEN PRINT SPC( ML% -CL%);: RETURN
20100 IF C$ > = " " AND CL% <ML% THEN NTRY$ = NTRY$ +C$
20110 GOTO 20020
21000 HT% = PEEK(36) +1:VT% = PEEK(37) +1
21010 IF C$ = "Y" OR C$ = "y" OR (C$ = CHR$(8) AND NTRY$ = "NO") THEN VTAB VT%: HTAB HT%: PRINT "<YES> No";:NTRY$ = "YES"
21020 IF C$ = "N" OR C$ = "n" OR (C$ = CHR$(21) AND NTRY$ = "YES") THEN VTAB VT%: HTAB HT%: PRINT "Yes <NO>";:NTRY$ = "NO"
21030 VTAB 19: HTAB 3: PRINT "Type Y for Yes or N for No,"
21040 HTAB 3: PRINT "or press ";: PRINT MT$;"H";RT$;" or ";MT$;"U";RT$;" to change."
21050 HTAB 3: PRINT "Then press RETURN. ";
21060 GOSUB 30000
21070 IF C$ < > CHR$(13) THEN 21010
21080 FR% = 19:LR% = 21: GOSUB 30100
21090 RETURN
22000 VTAB 19: HTAB 3: PRINT "Press ";MT$;"J";RT$;" or ";MT$;"K";RT$;" to select a field."
22010 VTAB 19: HTAB 3: PRINT "Press ";MT$;"J";RT$;" or ";MT$;"K";RT$;" to select a field."
22020 HTAB 3: PRINT "Then press RETURN. ";
22030 GOSUB 30000
22040 IF C$ = CHR$(10) THEN GOSUB 23500:FIELD% = FIELD% +1: GOSUB 23000
22050 IF C$ = CHR$(11) THEN GOSUB 23500:FIELD% = FIELD% -1: GOSUB 23000
22060 IF C$ > = "1" AND C$ < = STR$(LF%) THEN GOSUB 23500:FIELD% = VAL(C$): GOSUB 23000
22070 IF C$ < > CHR$(13) THEN 22030
22080 FR% = 19:LR% = 21: GOSUB 30100
22090 RETURN
23000 IF FIELD% >LF% THEN FIELD% = 1
23001 IF FIELD% <1 THEN FIELD% = LF%
23005 VT% = PEEK(37) +1:HT% = PEEK(36) +1
23010 VTAB FR%(1,FIELD%)
23011 HTAB FC%(1,FIELD%)
23012 INVERSE : PRINT FD$(1,FIELD%);
23013 NORMAL
23020 VTAB VT%: HTAB HT%
23030 RETURN
23500 VT% = PEEK(37) +1:HT% = PEEK(36) +1
23510 VTAB FR%(2,FIELD%): HTAB FC%(2,FIELD%): PRINT FD$(2,FIELD%);
23520 VTAB VT%: HTAB HT%
23530 RETURN
24000 REM
24010 REM ***DISPLAY LIST***
24020 REM
24029 GOSUB 17000
24030 T% = 12:L% = 4:B% = 16:R% = 37: GOSUB 30200
24031 VTAB 13: HTAB 4: PRINT "List 1st,2nd,Hold, or Both checks?": VTAB 14: HTAB 5: PRINT "(1/2/H/B)": VTAB 15: HTAB 5: PRINT " "; CHR$(8);: GET C1$
24034 IF C1$ = "1" THEN CA$ = "THE 1st": GOTO 24039
24035 IF C1$ = "2" THEN CA$ = "THE 2nd": GOTO 24039
24036 IF C1$ = "B" THEN CA$ = "BOTH": GOTO 24039
24037 IF C1$ = "H" THEN CA$ = "HOLD": GOTO 24039
24038 GOTO 24031
24039 HOME :RECRD = 0:A2 = 0:EN = 0:XC = 0
24040 HTAB 6: PRINT "BILLS DUE ON ";CA$;" CHECKS"
24050 VTAB 3: HTAB 2: PRINT "NO.";
24060 HTAB 6: PRINT "FIRM NAME";
24070 HTAB 18: PRINT "AMOUNT DUE";
24080 HTAB 30: PRINT "DATE DUE"
24090 HTAB 2: PRINT "---";: HTAB 6: PRINT "---------";: HTAB 18: PRINT "----------";: HTAB 30: PRINT "--------"
25000 RECRD = RECRD +1
25010 IF EN < >5 THEN PRINT D$;"READ";FILE$;",R";RECRD
25030 IF EN < >5 THEN INPUT "";FRM$,AMT$,DTE$,SE$
25040 PRINT D$
25041 IF OP = 1 THEN 25055
25045 IF XC = 14 THEN PRINT : PRINT "PRESS ANY KEY TO CONTINUE": GET WQ$: HOME :XC = 0:RECRD = RECRD -1: GOTO 24040
25055 IF EN = 5 THEN PRINT :A2 = INT(A2 *100 +.5)/100:AMT$ = STR$(A2): GOSUB 32000: HTAB 8: PRINT "TOTAL DUE=";AMT$: PRINT : PRINT : GOTO 31000
25060 C2 = VAL(SE$)
25065 IF SE$ = "H" THEN C2 = 3
25070 A1 = VAL(AMT$)
25071 IF FRM$ = "" THEN 25000
25075 IF C1$ = "B" THEN 25085
25076 IF C1$ = "1" THEN C1 = 1
25077 IF C1$ = "2" THEN C1 = 2
25078 IF C1$ = "H" THEN C1 = 3
25080 IF C2 < >C1 THEN 25000
25085 A2 = A2 +A1:XC = XC +1
25086 IF FRM$ = "" THEN 25000
25090 HTAB 2: PRINT RECRD;
26000 HTAB 6: PRINT FRM$;
26010 AMT = VAL(AMT$):W = LEN( STR$( INT(AMT))): HTAB (21 -W +1): PRINT AMT$;
26020 GOSUB 13320: HTAB 30: PRINT MM$;"/";DD$;"/";YY
26030 GOTO 25000
30000 PRINT " "; CHR$(8);
30010 GET C$
30014 BX = PEEK(49249)
30015 IF BX >127 THEN GOSUB 49999
30020 RETURN
30100 FOR ROW = FR% TO LR%
30110 VTAB ROW: HTAB 2: PRINT SPC( 37);
30120 NEXT ROW
30130 RETURN
30200 VTAB T%: HTAB L%
30210 PRINT MT$; LEFT$(TL$,R% -L% +1);
30220 FOR ROW = T% TO B%
30230 VTAB ROW: HTAB L% -1: PRINT "Z";
30240 HTAB R% +1: PRINT "_"
30250 NEXT ROW
30260 VTAB B%: HTAB L%: PRINT RT$; LEFT$(BL$,R% -L% +1);
30270 RETURN
30300 VT% = PEEK(37) +1
30310 PRINT MT$;"Z"; LEFT$(TBAR$,L%);"_";RT$;
30320 INVERSE : VTAB VT%: HTAB (40 - LEN(TITLES$))/2: PRINT TITLES$;: NORMAL
30330 RETURN
30989 REM
30990 REM ***HARD COPY ROUTINE***
30991 REM
31000 IF OP = 1 THEN PRINT D$;"PR#0":RECRD = 1:OP = 0: GOTO 1030
31005 VTAB 20: PRINT "DO YOU WANT A HARD COPY? (Y/N) ": GET YN$
31010 IF YN$ = "N" OR YN$ = CHR$(13) THEN RECRD = 1: GOTO 1030
31020 IF YN$ < >"Y" THEN 31000
31030 PRINT D$;"PR#1"
31035 OP = 1:EN = 0:A1 = 0:A2 = 0
31040 RECRD = 0: GOTO 24040
31990 REM DOLAR/CENTS FORMATTER
32000 IF LEN(AMT$) = 1 THEN AMT$ = AMT$ +".00": RETURN
32010 FOR D = 1 TO LEN(AMT$)
32020 IF MID$ (AMT$,D,1) = "." THEN 32050
32030 NEXT
32040 AMT$ = AMT$ +".00": RETURN
32050 IF D = LEN(AMT$) -1 THEN AMT$ = AMT$ +"0": RETURN
32060 IF D = LEN(AMT$) -2 THEN RETURN
32070 AMT$ = LEFT$(AMT$,D +2): RETURN
39090 REM
39095 REM **SEARCH ROUTINE**
39096 REM
40000 VTAB 13: HTAB 4: PRINT " TITLE OF FIRM? ";
40005 VTAB 14: HTAB 5: PRINT SPC( 21)
40006 CL% = 0
40010 ML% = 11: VTAB 13: HTAB 20: GOSUB 20000
40020 RECRD = 0:EN = 0
40030 RECRD = RECRD +1
40035 IF EN = 5 THEN VTAB 14: HTAB 10: INVERSE : PRINT BEEP$;"MATCH NOT FOUND!":NTRY$ = "1": FOR DL = 1 TO 500: NEXT DL: NORMAL : RETURN
40036 VTAB 23
40040 IF EN < >5 THEN PRINT D$;"READ";FILE$;",R";RECRD
40045 IF EN < >5 THEN INPUT "";FRM$
40050 IF FRM$ = NTRY$ THEN NTRY$ = STR$(RECRD): RETURN
40055 IF NTRY$ = "" THEN 40030
40060 IF LEFT$(FRM$, LEN(NTRY$)) = NTRY$ THEN NTRY$ = STR$(RECRD): RETURN
40070 GOTO 40030